package com.ymh.spring.advance.config;

import javax.activation.DataSource;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
import org.springframework.jndi.JndiObjectFactoryBean;


@Configuration
public class DataSourceConfig {
	
	/**
	 * 
	 * <h4>功能：为开发环境装配的bean</h4>
	 * <h5>日期：2017年11月3日 下午3:25:14</h5>
	 * <h5>作者：Aivin</h5>
	 * @return
	 */
	@Bean(destroyMethod="shutdown")
	@Profile(value="dev")
	public DataSource embeddedDataSource(){
		return (DataSource) new EmbeddedDatabaseBuilder()
		.setType(EmbeddedDatabaseType.H2)
		.addScript("")
		.addScript("")
		.build();
	}

	/**
	 * 
	 * <h4>功能：为生产环境装配的bean</h4>
	 * <h5>日期：2017年11月3日 下午3:24:53</h5>
	 * <h5>作者：Aivin</h5>
	 * @return
	 */
	@Bean
	@Profile(value = "prod")
	public DataSource jndiDataSource(){
		JndiObjectFactoryBean jndiObjectFactoryBean = new JndiObjectFactoryBean();
		jndiObjectFactoryBean.setJndiName("jdbc/myD$");
		jndiObjectFactoryBean.setResourceRef(true);
		jndiObjectFactoryBean.setProxyInterface(DataSource.class);
		
		return (DataSource) jndiObjectFactoryBean.getObject();
	}
	
	
}
